package test;

public class test {
    public static void main(String[] args) {
        //一个java文件中只能出现一个类被public修饰
        //测试类
        //测试子类
        //空参构造是jvm自带的
        ZI z1=new ZI();
        z1.method();
        z1.ZIShow();
        //带参数构造没有被继承
      //        ZI z2=new ZI("xiaoming",23);
        //父类的构造方法是无法继承到子类的

    }
}
class FU{
    String name="FU";
    final String GENDER="男";
    int id;
   public FU(){
       System.out.println("父类的空参构造");
    }
     final void method(){
        System.out.println("method");
    }
    private void method2(){
        System.out.println("method2");
    }
    public static void method3(){
        System.out.println("method3");
    }
    public FU(String name,int id){
       this.name=name;
       this.id=id;
    }
    //吃东西方法
    public void eat(){
        System.out.println("吃米饭");
    }
    public void drink(){
        System.out.println("喝茶");
    }
}
class ZI extends FU{
    String name="ZI";
    public ZI(){
        super();//子类默认隐藏访问父类的空参构造 ,初始化父类的数据 必须放在第一行
        System.out.println("子类的空参构造");

    }


    @Override//重写注解
    //当父类的方法不能满足子类现在的需求时,需要进行方法重写
//书写格式:
    //在继承体系中,子类出现了和父类一模一样的方法声明,我们就称子类的这个方法是重写的方法;
    //出错就会有红色波浪线
    //建议方法重写都要加上@Override
    public void eat(){
        System.out.println("炸鸡");
    }
    @Override
    public void drink(){
        System.out.println("奶茶");
    }

    public void ZIShow(){
        //成员变量访问特点
        String name="Zishow";
        System.out.println(name);
        System.out.println(this.name);
        System.out.println(super.name);
        //成员方法访问特点
        eat();
        drink();
        this.eat();
        this.drink();
        super.eat();
        super.drink();
    }
}